<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>CANopenNode: OD interface</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
  $(document).ready(function() { init_search(); });
/* @license-end */
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">CANopenNode
   </div>
  </td>
   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
</td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('group__CO__ODinterface.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#groups">Modules</a> &#124;
<a href="#files">Files</a> &#124;
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">OD interface<div class="ingroups"><a class="el" href="group__CO__CANopen__301.html">CANopen_301</a></div></div>  </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a>
Modules</h2></td></tr>
<tr class="memitem:group__CO__ODgetSetters"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__ODgetSetters.html">Getters and setters</a></td></tr>
<tr class="memdesc:group__CO__ODgetSetters"><td class="mdescLeft">&#160;</td><td class="mdescRight">Getter and setter helper functions for accessing different types of Object Dictionary variables. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:group__CO__ODdefinition"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__ODdefinition.html">OD definition objects</a></td></tr>
<tr class="memdesc:group__CO__ODdefinition"><td class="mdescLeft">&#160;</td><td class="mdescRight">Types and functions used only for definition of Object Dictionary. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
Files</h2></td></tr>
<tr class="memitem:CO__ODinterface_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="CO__ODinterface_8h.html">CO_ODinterface.h</a></td></tr>
<tr class="memdesc:CO__ODinterface_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">CANopen Object Dictionary interface. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structOD__subEntry__t.html">OD_subEntry_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Structure describing properties of a variable, located in specific index and sub-index inside the Object Dictionary.  <a href="structOD__subEntry__t.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structOD__stream__t.html">OD_stream_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">IO stream structure, used for read/write access to OD variable, part of <a class="el" href="structOD__IO__t.html">OD_IO_t</a>.  <a href="structOD__stream__t.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structOD__IO__t.html">OD_IO_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Structure for input / output on the OD variable.  <a href="structOD__IO__t.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structOD__entry__t.html">OD_entry_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Object Dictionary entry for one OD object.  <a href="structOD__entry__t.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structOD__t.html">OD_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Object Dictionary.  <a href="structOD__t.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:gaef984c993ddbf6a0500391e97f05d08e"><td class="memItemLeft" align="right" valign="top"><a id="gaef984c993ddbf6a0500391e97f05d08e"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__ODinterface.html#gaef984c993ddbf6a0500391e97f05d08e">OD_size_t</a>&#160;&#160;&#160;<a class="el" href="group__CO__dataTypes.html#ga33594304e786b158f3fb30289278f5af">uint32_t</a></td></tr>
<tr class="memdesc:gaef984c993ddbf6a0500391e97f05d08e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Variable of type OD_size_t contains data length in bytes of OD variable. <br /></td></tr>
<tr class="separator:gaef984c993ddbf6a0500391e97f05d08e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga69f6e1121545e5669098f49e95ce4e47"><td class="memItemLeft" align="right" valign="top"><a id="ga69f6e1121545e5669098f49e95ce4e47"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__ODinterface.html#ga69f6e1121545e5669098f49e95ce4e47">OD_flagsPDO_t</a>&#160;&#160;&#160;<a class="el" href="group__CO__dataTypes.html#ga33594304e786b158f3fb30289278f5af">uint32_t</a></td></tr>
<tr class="memdesc:ga69f6e1121545e5669098f49e95ce4e47"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type of flagsPDO variable from <a class="el" href="structOD__subEntry__t.html" title="Structure describing properties of a variable, located in specific index and sub-index inside the Obj...">OD_subEntry_t</a>. <br /></td></tr>
<tr class="separator:ga69f6e1121545e5669098f49e95ce4e47"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8d459f95307815637e41edc4df71a725"><td class="memItemLeft" align="right" valign="top"><a id="ga8d459f95307815637e41edc4df71a725"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__ODinterface.html#ga8d459f95307815637e41edc4df71a725">OD_attr_t</a>&#160;&#160;&#160;<a class="el" href="group__CO__dataTypes.html#gaba7bc1797add20fe3efdf37ced1182c5">uint8_t</a></td></tr>
<tr class="memdesc:ga8d459f95307815637e41edc4df71a725"><td class="mdescLeft">&#160;</td><td class="mdescRight">Size of Object Dictionary attribute. <br /></td></tr>
<tr class="separator:ga8d459f95307815637e41edc4df71a725"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:gade8960f241ee3b728eac09288a694886"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__ODinterface.html#gade8960f241ee3b728eac09288a694886">OD_ObjDicId_30x_t</a> { <br />
&#160;&#160;<a class="el" href="group__CO__ODinterface.html#ggade8960f241ee3b728eac09288a694886af1e65ef6eb730b9302540e0ba44852b1">OD_H1000_DEV_TYPE</a> = 0x1000U, 
<a class="el" href="group__CO__ODinterface.html#ggade8960f241ee3b728eac09288a694886af4eb4e0204ae9696f935af5d4fdcff7e">OD_H1001_ERR_REG</a> = 0x1001U, 
<a class="el" href="group__CO__ODinterface.html#ggade8960f241ee3b728eac09288a694886a2cca52f61d70db5ca2aaa168b32f3aaf">OD_H1002_MANUF_STATUS_REG</a> = 0x1002U, 
<a class="el" href="group__CO__ODinterface.html#ggade8960f241ee3b728eac09288a694886adfc213af5af80cf037231621132013fb">OD_H1003_PREDEF_ERR_FIELD</a> = 0x1003U, 
<br />
&#160;&#160;<a class="el" href="group__CO__ODinterface.html#ggade8960f241ee3b728eac09288a694886ad7d53fa95504566811bdf0683f645ccd">OD_H1004_RSV</a> = 0x1004U, 
<a class="el" href="group__CO__ODinterface.html#ggade8960f241ee3b728eac09288a694886adcbc9ec0c547b00db2b0403708becb97">OD_H1005_COBID_SYNC</a> = 0x1005U, 
<a class="el" href="group__CO__ODinterface.html#ggade8960f241ee3b728eac09288a694886a463dab19c27811dd6de51fcc082b565b">OD_H1006_COMM_CYCL_PERIOD</a> = 0x1006U, 
<a class="el" href="group__CO__ODinterface.html#ggade8960f241ee3b728eac09288a694886a41f7f0f96dbea4fb0d6bd2bbbd2d59dc">OD_H1007_SYNC_WINDOW_LEN</a> = 0x1007U, 
<br />
&#160;&#160;<a class="el" href="group__CO__ODinterface.html#ggade8960f241ee3b728eac09288a694886aa282ef78e8a64ff527c79218d23168f0">OD_H1008_MANUF_DEV_NAME</a> = 0x1008U, 
<a class="el" href="group__CO__ODinterface.html#ggade8960f241ee3b728eac09288a694886ad91534dd5cc5f382287b9a392c744948">OD_H1009_MANUF_HW_VERSION</a> = 0x1009U, 
<a class="el" href="group__CO__ODinterface.html#ggade8960f241ee3b728eac09288a694886a8bd48d9bb18d1c291249050818c82a57">OD_H100A_MANUF_SW_VERSION</a> = 0x100AU, 
<a class="el" href="group__CO__ODinterface.html#ggade8960f241ee3b728eac09288a694886a561260a506655cf0b7df9d684a08b5be">OD_H100B_RSV</a> = 0x100BU, 
<br />
&#160;&#160;<a class="el" href="group__CO__ODinterface.html#ggade8960f241ee3b728eac09288a694886adf00d5b448274a91940cac15b8e22fc5">OD_H100C_GUARD_TIME</a> = 0x100CU, 
<a class="el" href="group__CO__ODinterface.html#ggade8960f241ee3b728eac09288a694886a4bfbb36a82606125d52fbe4daff6b5fb">OD_H100D_LIFETIME_FACTOR</a> = 0x100DU, 
<a class="el" href="group__CO__ODinterface.html#ggade8960f241ee3b728eac09288a694886a4d831b2a36d679d31982e35ca38f8f6e">OD_H100E_RSV</a> = 0x100EU, 
<a class="el" href="group__CO__ODinterface.html#ggade8960f241ee3b728eac09288a694886a7d6a3f1ca8f72bf808ee5fe341f2acca">OD_H100F_RSV</a> = 0x100FU, 
<br />
&#160;&#160;<a class="el" href="group__CO__ODinterface.html#ggade8960f241ee3b728eac09288a694886a0f8c3db5a62d5e4df59d83253b69b0f2">OD_H1010_STORE_PARAM_FUNC</a> = 0x1010U, 
<a class="el" href="group__CO__ODinterface.html#ggade8960f241ee3b728eac09288a694886adad8c0ea18f674f3eb61b43e8259395c">OD_H1011_REST_PARAM_FUNC</a> = 0x1011U, 
<a class="el" href="group__CO__ODinterface.html#ggade8960f241ee3b728eac09288a694886a5781f519d9ec08fd4389c4761754a4e6">OD_H1012_COBID_TIME</a> = 0x1012U, 
<a class="el" href="group__CO__ODinterface.html#ggade8960f241ee3b728eac09288a694886a7aa32b2b6df7c4d4354599ef2fd2ca29">OD_H1013_HIGH_RES_TIMESTAMP</a> = 0x1013U, 
<br />
&#160;&#160;<a class="el" href="group__CO__ODinterface.html#ggade8960f241ee3b728eac09288a694886a5cae036f3dd0bc1861dcea7c9a83c6d5">OD_H1014_COBID_EMERGENCY</a> = 0x1014U, 
<a class="el" href="group__CO__ODinterface.html#ggade8960f241ee3b728eac09288a694886adbcd0d36ab781fc60b05a94288b8f019">OD_H1015_INHIBIT_TIME_EMCY</a> = 0x1015U, 
<a class="el" href="group__CO__ODinterface.html#ggade8960f241ee3b728eac09288a694886a996952cb963ce6e2783a6fa915d85612">OD_H1016_CONSUMER_HB_TIME</a> = 0x1016U, 
<a class="el" href="group__CO__ODinterface.html#ggade8960f241ee3b728eac09288a694886ab2f428825c1127b286f5b8ace5e881b2">OD_H1017_PRODUCER_HB_TIME</a> = 0x1017U, 
<br />
&#160;&#160;<a class="el" href="group__CO__ODinterface.html#ggade8960f241ee3b728eac09288a694886aabb7a688852e453c5535f663be6298d2">OD_H1018_IDENTITY_OBJECT</a> = 0x1018U, 
<a class="el" href="group__CO__ODinterface.html#ggade8960f241ee3b728eac09288a694886aa966d2e020222331b18c5b08261acbf0">OD_H1019_SYNC_CNT_OVERFLOW</a> = 0x1019U, 
<a class="el" href="group__CO__ODinterface.html#ggade8960f241ee3b728eac09288a694886a8c740bbdd0cb98200d402ec6272d7e8b">OD_H1020_VERIFY_CONFIG</a> = 0x1020U, 
<a class="el" href="group__CO__ODinterface.html#ggade8960f241ee3b728eac09288a694886a259737f7e9ef239d85cb9e7bdeda550b">OD_H1021_STORE_EDS</a> = 0x1021U, 
<br />
&#160;&#160;<a class="el" href="group__CO__ODinterface.html#ggade8960f241ee3b728eac09288a694886a4061d54d1c1583fd178566a3915bcefe">OD_H1022_STORE_FORMAT</a> = 0x1022U, 
<a class="el" href="group__CO__ODinterface.html#ggade8960f241ee3b728eac09288a694886a12ba9d8cdfc20b9ff66167a8d1e5b21c">OD_H1023_OS_CMD</a> = 0x1023U, 
<a class="el" href="group__CO__ODinterface.html#ggade8960f241ee3b728eac09288a694886ad7e64256615fcda5b531063eeaa346de">OD_H1024_OS_CMD_MODE</a> = 0x1024U, 
<a class="el" href="group__CO__ODinterface.html#ggade8960f241ee3b728eac09288a694886aaf890d86468408b0dbe8353a3b270156">OD_H1025_OS_DBG_INTERFACE</a> = 0x1025U, 
<br />
&#160;&#160;<a class="el" href="group__CO__ODinterface.html#ggade8960f241ee3b728eac09288a694886a6e3b80d148d22f129ed388fad9aaf398">OD_H1026_OS_PROMPT</a> = 0x1026U, 
<a class="el" href="group__CO__ODinterface.html#ggade8960f241ee3b728eac09288a694886a668cdf3b0102b753858b9bfeb7efdc1c">OD_H1027_MODULE_LIST</a> = 0x1027U, 
<a class="el" href="group__CO__ODinterface.html#ggade8960f241ee3b728eac09288a694886a6f093f4fdeaac7b723305fd8d2ce40c1">OD_H1028_EMCY_CONSUMER</a> = 0x1028U, 
<a class="el" href="group__CO__ODinterface.html#ggade8960f241ee3b728eac09288a694886a67d50722cc629ee8c2a90a123ee41fa3">OD_H1029_ERR_BEHAVIOR</a> = 0x1029U, 
<br />
&#160;&#160;<a class="el" href="group__CO__ODinterface.html#ggade8960f241ee3b728eac09288a694886a7e351a37cb53541b510e97711e167450">OD_H1200_SDO_SERVER_1_PARAM</a> = 0x1200U, 
<a class="el" href="group__CO__ODinterface.html#ggade8960f241ee3b728eac09288a694886a3e0e0989da485b0511d7e7cadcdb6dbb">OD_H1280_SDO_CLIENT_1_PARAM</a> = 0x1280U, 
<a class="el" href="group__CO__ODinterface.html#ggade8960f241ee3b728eac09288a694886afa584e69f73b7a80cd708010fc0ae64f">OD_H1300_GFC_PARAM</a> = 0x1300U, 
<a class="el" href="group__CO__ODinterface.html#ggade8960f241ee3b728eac09288a694886afbb7d48d240c7584d461712685e62945">OD_H1301_SRDO_1_PARAM</a> = 0x1301U, 
<br />
&#160;&#160;<a class="el" href="group__CO__ODinterface.html#ggade8960f241ee3b728eac09288a694886a8effa6834289b482e5ac3319ccf2c17b">OD_H1381_SRDO_1_MAPPING</a> = 0x1381U, 
<a class="el" href="group__CO__ODinterface.html#ggade8960f241ee3b728eac09288a694886aa66d7204dd265d19276113ef7177ce68">OD_H13FE_SRDO_VALID</a> = 0x13FEU, 
<a class="el" href="group__CO__ODinterface.html#ggade8960f241ee3b728eac09288a694886a92c6bed78bc6bbbd182c16fe8890dcbf">OD_H13FF_SRDO_CHECKSUM</a> = 0x13FFU, 
<a class="el" href="group__CO__ODinterface.html#ggade8960f241ee3b728eac09288a694886ae64bf5b7166b6adf46b8e965d43150a0">OD_H1400_RXPDO_1_PARAM</a> = 0x1400U, 
<br />
&#160;&#160;<a class="el" href="group__CO__ODinterface.html#ggade8960f241ee3b728eac09288a694886a7ed53d283e4719920b233b9094b18f9c">OD_H1600_RXPDO_1_MAPPING</a> = 0x1600U, 
<a class="el" href="group__CO__ODinterface.html#ggade8960f241ee3b728eac09288a694886aac35e48e4b717eef309ebb57876d30f1">OD_H1800_TXPDO_1_PARAM</a> = 0x1800U, 
<a class="el" href="group__CO__ODinterface.html#ggade8960f241ee3b728eac09288a694886a2a2f1c4cc58d29ccf43e105afd57bc14">OD_H1A00_TXPDO_1_MAPPING</a> = 0x1A00U
<br />
 }</td></tr>
<tr class="memdesc:gade8960f241ee3b728eac09288a694886"><td class="mdescLeft">&#160;</td><td class="mdescRight">Common DS301 object dictionary entries.  <a href="group__CO__ODinterface.html#gade8960f241ee3b728eac09288a694886">More...</a><br /></td></tr>
<tr class="separator:gade8960f241ee3b728eac09288a694886"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga47b0d204aaf1ea64b4f826aaf8f5c151"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__ODinterface.html#ga47b0d204aaf1ea64b4f826aaf8f5c151">OD_attributes_t</a> { <br />
&#160;&#160;<a class="el" href="group__CO__ODinterface.html#gga47b0d204aaf1ea64b4f826aaf8f5c151ada3eb985961ffdd9cf655d1a7a7d9485">ODA_SDO_R</a> = 0x01, 
<a class="el" href="group__CO__ODinterface.html#gga47b0d204aaf1ea64b4f826aaf8f5c151a9245e7a557f32ab863aef41412df9eb5">ODA_SDO_W</a> = 0x02, 
<a class="el" href="group__CO__ODinterface.html#gga47b0d204aaf1ea64b4f826aaf8f5c151a2c60ba85cbe4f25d5511ffab3dcd7486">ODA_SDO_RW</a> = 0x03, 
<a class="el" href="group__CO__ODinterface.html#gga47b0d204aaf1ea64b4f826aaf8f5c151ad106aacb6b181ab7dac0f6dbc8c50321">ODA_TPDO</a> = 0x04, 
<br />
&#160;&#160;<a class="el" href="group__CO__ODinterface.html#gga47b0d204aaf1ea64b4f826aaf8f5c151ae4930aa0efbc2249563613b5107bb107">ODA_RPDO</a> = 0x08, 
<a class="el" href="group__CO__ODinterface.html#gga47b0d204aaf1ea64b4f826aaf8f5c151af750832681daa8d5e44ed8908c4ec552">ODA_TRPDO</a> = 0x0C, 
<a class="el" href="group__CO__ODinterface.html#gga47b0d204aaf1ea64b4f826aaf8f5c151a3a1b8c2ed54565e89d6e6d3a043bdcfe">ODA_TSRDO</a> = 0x10, 
<a class="el" href="group__CO__ODinterface.html#gga47b0d204aaf1ea64b4f826aaf8f5c151a6c6261d5bea91588b2851f5c11faae02">ODA_RSRDO</a> = 0x20, 
<br />
&#160;&#160;<a class="el" href="group__CO__ODinterface.html#gga47b0d204aaf1ea64b4f826aaf8f5c151af887f38d83f35c28d478f1a4b08d1be9">ODA_TRSRDO</a> = 0x30, 
<a class="el" href="group__CO__ODinterface.html#gga47b0d204aaf1ea64b4f826aaf8f5c151ae02b665e7e8d8bd84f341c9ad040d367">ODA_MB</a> = 0x40, 
<a class="el" href="group__CO__ODinterface.html#gga47b0d204aaf1ea64b4f826aaf8f5c151a9527d9c21ba4159d653771e1dedad81d">ODA_STR</a> = 0x80
<br />
 }</td></tr>
<tr class="memdesc:ga47b0d204aaf1ea64b4f826aaf8f5c151"><td class="mdescLeft">&#160;</td><td class="mdescRight">Attributes (bit masks) for OD sub-object.  <a href="group__CO__ODinterface.html#ga47b0d204aaf1ea64b4f826aaf8f5c151">More...</a><br /></td></tr>
<tr class="separator:ga47b0d204aaf1ea64b4f826aaf8f5c151"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0e9afd8ad27de0920d1fe0738834869c"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__ODinterface.html#ga0e9afd8ad27de0920d1fe0738834869c">ODR_t</a> { <br />
&#160;&#160;<a class="el" href="group__CO__ODinterface.html#gga0e9afd8ad27de0920d1fe0738834869caf7595749473065bfc81cfa6709370fee">ODR_PARTIAL</a> = -1, 
<a class="el" href="group__CO__ODinterface.html#gga0e9afd8ad27de0920d1fe0738834869ca15f7f20e27f1c5f174bdeecfeef45cc2">ODR_OK</a> = 0, 
<a class="el" href="group__CO__ODinterface.html#gga0e9afd8ad27de0920d1fe0738834869ca118a63a81ef2fd802c925bf4c79975fa">ODR_OUT_OF_MEM</a> = 1, 
<a class="el" href="group__CO__ODinterface.html#gga0e9afd8ad27de0920d1fe0738834869ca17d694adc9471112cbb2740f7f45a2d0">ODR_UNSUPP_ACCESS</a> = 2, 
<br />
&#160;&#160;<a class="el" href="group__CO__ODinterface.html#gga0e9afd8ad27de0920d1fe0738834869ca44ab94bfc7547122b96498c781291df6">ODR_WRITEONLY</a> = 3, 
<a class="el" href="group__CO__ODinterface.html#gga0e9afd8ad27de0920d1fe0738834869caa119384effe499c9bffb874219c6433a">ODR_READONLY</a> = 4, 
<a class="el" href="group__CO__ODinterface.html#gga0e9afd8ad27de0920d1fe0738834869ca64ea80d1baebf136382d53d5580fbc85">ODR_IDX_NOT_EXIST</a> = 5, 
<a class="el" href="group__CO__ODinterface.html#gga0e9afd8ad27de0920d1fe0738834869ca853242f74446c58773099bdef9835a94">ODR_NO_MAP</a> = 6, 
<br />
&#160;&#160;<a class="el" href="group__CO__ODinterface.html#gga0e9afd8ad27de0920d1fe0738834869cad6c92203fa86ee8ff7d7271bf81e7d9e">ODR_MAP_LEN</a> = 7, 
<a class="el" href="group__CO__ODinterface.html#gga0e9afd8ad27de0920d1fe0738834869ca36edb0ad1c8c5c0d804bb88274bfe165">ODR_PAR_INCOMPAT</a> = 8, 
<a class="el" href="group__CO__ODinterface.html#gga0e9afd8ad27de0920d1fe0738834869ca3d259ef030c2a10afecb253b532a0323">ODR_DEV_INCOMPAT</a> = 9, 
<a class="el" href="group__CO__ODinterface.html#gga0e9afd8ad27de0920d1fe0738834869caeaac26c680e626185429468dda9c2433">ODR_HW</a> = 10, 
<br />
&#160;&#160;<a class="el" href="group__CO__ODinterface.html#gga0e9afd8ad27de0920d1fe0738834869cad197c1462f472a21be2e3ed5c5880aa4">ODR_TYPE_MISMATCH</a> = 11, 
<a class="el" href="group__CO__ODinterface.html#gga0e9afd8ad27de0920d1fe0738834869ca3f93f54b7f130bb7b266b2d36c24caec">ODR_DATA_LONG</a> = 12, 
<a class="el" href="group__CO__ODinterface.html#gga0e9afd8ad27de0920d1fe0738834869cae0b103160b23ff40047fcf85225121d2">ODR_DATA_SHORT</a> = 13, 
<a class="el" href="group__CO__ODinterface.html#gga0e9afd8ad27de0920d1fe0738834869ca4f76fa87ea446616ff2f6195e7bec67c">ODR_SUB_NOT_EXIST</a> = 14, 
<br />
&#160;&#160;<a class="el" href="group__CO__ODinterface.html#gga0e9afd8ad27de0920d1fe0738834869ca0646f592124a9b4d2835c9c0296c6a0c">ODR_INVALID_VALUE</a> = 15, 
<a class="el" href="group__CO__ODinterface.html#gga0e9afd8ad27de0920d1fe0738834869ca95291309267a732c380e13ad6c17a986">ODR_VALUE_HIGH</a> = 16, 
<a class="el" href="group__CO__ODinterface.html#gga0e9afd8ad27de0920d1fe0738834869ca4db02b8575a8a10786959a5472f1c0f4">ODR_VALUE_LOW</a> = 17, 
<a class="el" href="group__CO__ODinterface.html#gga0e9afd8ad27de0920d1fe0738834869cac9c8eda20bfc7dfffe17f170c377d646">ODR_MAX_LESS_MIN</a> = 18, 
<br />
&#160;&#160;<a class="el" href="group__CO__ODinterface.html#gga0e9afd8ad27de0920d1fe0738834869ca15fe8d8b791b90373e59bc5bc5d3f8c8">ODR_NO_RESOURCE</a> = 19, 
<a class="el" href="group__CO__ODinterface.html#gga0e9afd8ad27de0920d1fe0738834869ca968d2a28cb866cacf7ef8b8cd0b76e2c">ODR_GENERAL</a> = 20, 
<a class="el" href="group__CO__ODinterface.html#gga0e9afd8ad27de0920d1fe0738834869ca341104b9ac43168d0c668586b8f750bb">ODR_DATA_TRANSF</a> = 21, 
<a class="el" href="group__CO__ODinterface.html#gga0e9afd8ad27de0920d1fe0738834869ca28b28d8f091eefb7e8fac92bbdae82bb">ODR_DATA_LOC_CTRL</a> = 22, 
<br />
&#160;&#160;<a class="el" href="group__CO__ODinterface.html#gga0e9afd8ad27de0920d1fe0738834869ca16bfe0c712aaea3841ae2b250331b276">ODR_DATA_DEV_STATE</a> = 23, 
<a class="el" href="group__CO__ODinterface.html#gga0e9afd8ad27de0920d1fe0738834869caeae1e00129ff22708ffdcb2c8b3f083b">ODR_OD_MISSING</a> = 23, 
<a class="el" href="group__CO__ODinterface.html#gga0e9afd8ad27de0920d1fe0738834869caff503d4f6cc55429913680d071ca3c4d">ODR_NO_DATA</a> = 25, 
<a class="el" href="group__CO__ODinterface.html#gga0e9afd8ad27de0920d1fe0738834869cac43414be729ea2b701380c4400658c37">ODR_COUNT</a> = 26
<br />
 }</td></tr>
<tr class="memdesc:ga0e9afd8ad27de0920d1fe0738834869c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return codes from OD access functions.  <a href="group__CO__ODinterface.html#ga0e9afd8ad27de0920d1fe0738834869c">More...</a><br /></td></tr>
<tr class="separator:ga0e9afd8ad27de0920d1fe0738834869c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:gadf9ac60f94e1f9fc21b7f10a0d254503"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__CO__ODinterface.html#gaef984c993ddbf6a0500391e97f05d08e">OD_size_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__ODinterface.html#gadf9ac60f94e1f9fc21b7f10a0d254503">OD_readOriginal</a> (<a class="el" href="structOD__stream__t.html">OD_stream_t</a> *stream, <a class="el" href="group__CO__dataTypes.html#gaba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> subIndex, void *buf, <a class="el" href="group__CO__ODinterface.html#gaef984c993ddbf6a0500391e97f05d08e">OD_size_t</a> count, <a class="el" href="group__CO__ODinterface.html#ga0e9afd8ad27de0920d1fe0738834869c">ODR_t</a> *returnCode)</td></tr>
<tr class="memdesc:gadf9ac60f94e1f9fc21b7f10a0d254503"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read value from original OD location.  <a href="group__CO__ODinterface.html#gadf9ac60f94e1f9fc21b7f10a0d254503">More...</a><br /></td></tr>
<tr class="separator:gadf9ac60f94e1f9fc21b7f10a0d254503"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga648f0b0bfabde2d377149bf84e937422"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__CO__ODinterface.html#gaef984c993ddbf6a0500391e97f05d08e">OD_size_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__ODinterface.html#ga648f0b0bfabde2d377149bf84e937422">OD_writeOriginal</a> (<a class="el" href="structOD__stream__t.html">OD_stream_t</a> *stream, <a class="el" href="group__CO__dataTypes.html#gaba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> subIndex, const void *buf, <a class="el" href="group__CO__ODinterface.html#gaef984c993ddbf6a0500391e97f05d08e">OD_size_t</a> count, <a class="el" href="group__CO__ODinterface.html#ga0e9afd8ad27de0920d1fe0738834869c">ODR_t</a> *returnCode)</td></tr>
<tr class="memdesc:ga648f0b0bfabde2d377149bf84e937422"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write value to original OD location.  <a href="group__CO__ODinterface.html#ga648f0b0bfabde2d377149bf84e937422">More...</a><br /></td></tr>
<tr class="separator:ga648f0b0bfabde2d377149bf84e937422"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaaacaadfc28bfaf485cefc8bff64310f4"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structOD__entry__t.html">OD_entry_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__ODinterface.html#gaaacaadfc28bfaf485cefc8bff64310f4">OD_find</a> (const <a class="el" href="structOD__t.html">OD_t</a> *od, <a class="el" href="group__CO__dataTypes.html#ga1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a> index)</td></tr>
<tr class="memdesc:gaaacaadfc28bfaf485cefc8bff64310f4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Find OD entry in Object Dictionary.  <a href="group__CO__ODinterface.html#gaaacaadfc28bfaf485cefc8bff64310f4">More...</a><br /></td></tr>
<tr class="separator:gaaacaadfc28bfaf485cefc8bff64310f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf1f736d4b4d6754d971f0c0a63655bcf"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__CO__ODinterface.html#ga0e9afd8ad27de0920d1fe0738834869c">ODR_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__ODinterface.html#gaf1f736d4b4d6754d971f0c0a63655bcf">OD_getSub</a> (const <a class="el" href="structOD__entry__t.html">OD_entry_t</a> *entry, <a class="el" href="group__CO__dataTypes.html#gaba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> subIndex, <a class="el" href="structOD__subEntry__t.html">OD_subEntry_t</a> *subEntry, <a class="el" href="structOD__IO__t.html">OD_IO_t</a> *io, <a class="el" href="group__CO__dataTypes.html#ga449976458a084f880dc8e3d29e7eb6f5">bool_t</a> odOrig)</td></tr>
<tr class="memdesc:gaf1f736d4b4d6754d971f0c0a63655bcf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Find sub-object with specified sub-index on OD entry returned by OD_find.  <a href="group__CO__ODinterface.html#gaf1f736d4b4d6754d971f0c0a63655bcf">More...</a><br /></td></tr>
<tr class="separator:gaf1f736d4b4d6754d971f0c0a63655bcf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac84e7390f50e7e5c5e8ba42714e51aaf"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="group__CO__dataTypes.html#ga1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__ODinterface.html#gac84e7390f50e7e5c5e8ba42714e51aaf">OD_getIndex</a> (const <a class="el" href="structOD__entry__t.html">OD_entry_t</a> *entry)</td></tr>
<tr class="memdesc:gac84e7390f50e7e5c5e8ba42714e51aaf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return index from OD entry.  <a href="group__CO__ODinterface.html#gac84e7390f50e7e5c5e8ba42714e51aaf">More...</a><br /></td></tr>
<tr class="separator:gac84e7390f50e7e5c5e8ba42714e51aaf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3715e0a6b15bdf45659e1e01f9fc4e65"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__ODinterface.html#ga3715e0a6b15bdf45659e1e01f9fc4e65">OD_rwRestart</a> (<a class="el" href="structOD__stream__t.html">OD_stream_t</a> *stream)</td></tr>
<tr class="memdesc:ga3715e0a6b15bdf45659e1e01f9fc4e65"><td class="mdescLeft">&#160;</td><td class="mdescRight">Restart read or write operation on OD variable.  <a href="group__CO__ODinterface.html#ga3715e0a6b15bdf45659e1e01f9fc4e65">More...</a><br /></td></tr>
<tr class="separator:ga3715e0a6b15bdf45659e1e01f9fc4e65"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7c24b06bb9365d41b8e60acb4eaecc6c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__CO__dataTypes.html#ga33594304e786b158f3fb30289278f5af">uint32_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__ODinterface.html#ga7c24b06bb9365d41b8e60acb4eaecc6c">OD_getSDOabCode</a> (<a class="el" href="group__CO__ODinterface.html#ga0e9afd8ad27de0920d1fe0738834869c">ODR_t</a> returnCode)</td></tr>
<tr class="memdesc:ga7c24b06bb9365d41b8e60acb4eaecc6c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get SDO abort code from returnCode.  <a href="group__CO__ODinterface.html#ga7c24b06bb9365d41b8e60acb4eaecc6c">More...</a><br /></td></tr>
<tr class="separator:ga7c24b06bb9365d41b8e60acb4eaecc6c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac07bbe54fbfecc6bc8da2e10b2c0f7e8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__CO__ODinterface.html#ga0e9afd8ad27de0920d1fe0738834869c">ODR_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__ODinterface.html#gac07bbe54fbfecc6bc8da2e10b2c0f7e8">OD_extensionIO_init</a> (const <a class="el" href="structOD__entry__t.html">OD_entry_t</a> *entry, void *object, <a class="el" href="group__CO__ODinterface.html#gaef984c993ddbf6a0500391e97f05d08e">OD_size_t</a>(*read)(<a class="el" href="structOD__stream__t.html">OD_stream_t</a> *stream, <a class="el" href="group__CO__dataTypes.html#gaba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> subIndex, void *buf, <a class="el" href="group__CO__ODinterface.html#gaef984c993ddbf6a0500391e97f05d08e">OD_size_t</a> count, <a class="el" href="group__CO__ODinterface.html#ga0e9afd8ad27de0920d1fe0738834869c">ODR_t</a> *returnCode), <a class="el" href="group__CO__ODinterface.html#gaef984c993ddbf6a0500391e97f05d08e">OD_size_t</a>(*write)(<a class="el" href="structOD__stream__t.html">OD_stream_t</a> *stream, <a class="el" href="group__CO__dataTypes.html#gaba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> subIndex, const void *buf, <a class="el" href="group__CO__ODinterface.html#gaef984c993ddbf6a0500391e97f05d08e">OD_size_t</a> count, <a class="el" href="group__CO__ODinterface.html#ga0e9afd8ad27de0920d1fe0738834869c">ODR_t</a> *returnCode))</td></tr>
<tr class="memdesc:gac07bbe54fbfecc6bc8da2e10b2c0f7e8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialise extended OD object with own read/write functions.  <a href="group__CO__ODinterface.html#gac07bbe54fbfecc6bc8da2e10b2c0f7e8">More...</a><br /></td></tr>
<tr class="separator:gac07bbe54fbfecc6bc8da2e10b2c0f7e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>See <a class="el" href="md_doc_objectDictionary.html">Object Dictionary</a> </p>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a id="gade8960f241ee3b728eac09288a694886"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gade8960f241ee3b728eac09288a694886">&#9670;&nbsp;</a></span>OD_ObjDicId_30x_t</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__CO__ODinterface.html#gade8960f241ee3b728eac09288a694886">OD_ObjDicId_30x_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Common DS301 object dictionary entries. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="ggade8960f241ee3b728eac09288a694886af1e65ef6eb730b9302540e0ba44852b1"></a>OD_H1000_DEV_TYPE&#160;</td><td class="fielddoc"><p>Device type. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggade8960f241ee3b728eac09288a694886af4eb4e0204ae9696f935af5d4fdcff7e"></a>OD_H1001_ERR_REG&#160;</td><td class="fielddoc"><p>Error register. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggade8960f241ee3b728eac09288a694886a2cca52f61d70db5ca2aaa168b32f3aaf"></a>OD_H1002_MANUF_STATUS_REG&#160;</td><td class="fielddoc"><p>Manufacturer status register. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggade8960f241ee3b728eac09288a694886adfc213af5af80cf037231621132013fb"></a>OD_H1003_PREDEF_ERR_FIELD&#160;</td><td class="fielddoc"><p>Predefined error field. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggade8960f241ee3b728eac09288a694886ad7d53fa95504566811bdf0683f645ccd"></a>OD_H1004_RSV&#160;</td><td class="fielddoc"><p>Reserved. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggade8960f241ee3b728eac09288a694886adcbc9ec0c547b00db2b0403708becb97"></a>OD_H1005_COBID_SYNC&#160;</td><td class="fielddoc"><p>Sync message cob-id. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggade8960f241ee3b728eac09288a694886a463dab19c27811dd6de51fcc082b565b"></a>OD_H1006_COMM_CYCL_PERIOD&#160;</td><td class="fielddoc"><p>Communication cycle period. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggade8960f241ee3b728eac09288a694886a41f7f0f96dbea4fb0d6bd2bbbd2d59dc"></a>OD_H1007_SYNC_WINDOW_LEN&#160;</td><td class="fielddoc"><p>Sync windows length. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggade8960f241ee3b728eac09288a694886aa282ef78e8a64ff527c79218d23168f0"></a>OD_H1008_MANUF_DEV_NAME&#160;</td><td class="fielddoc"><p>Manufacturer device name. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggade8960f241ee3b728eac09288a694886ad91534dd5cc5f382287b9a392c744948"></a>OD_H1009_MANUF_HW_VERSION&#160;</td><td class="fielddoc"><p>Manufacturer hardware version. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggade8960f241ee3b728eac09288a694886a8bd48d9bb18d1c291249050818c82a57"></a>OD_H100A_MANUF_SW_VERSION&#160;</td><td class="fielddoc"><p>Manufacturer software version. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggade8960f241ee3b728eac09288a694886a561260a506655cf0b7df9d684a08b5be"></a>OD_H100B_RSV&#160;</td><td class="fielddoc"><p>Reserved. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggade8960f241ee3b728eac09288a694886adf00d5b448274a91940cac15b8e22fc5"></a>OD_H100C_GUARD_TIME&#160;</td><td class="fielddoc"><p>Guard time. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggade8960f241ee3b728eac09288a694886a4bfbb36a82606125d52fbe4daff6b5fb"></a>OD_H100D_LIFETIME_FACTOR&#160;</td><td class="fielddoc"><p>Life time factor. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggade8960f241ee3b728eac09288a694886a4d831b2a36d679d31982e35ca38f8f6e"></a>OD_H100E_RSV&#160;</td><td class="fielddoc"><p>Reserved. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggade8960f241ee3b728eac09288a694886a7d6a3f1ca8f72bf808ee5fe341f2acca"></a>OD_H100F_RSV&#160;</td><td class="fielddoc"><p>Reserved. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggade8960f241ee3b728eac09288a694886a0f8c3db5a62d5e4df59d83253b69b0f2"></a>OD_H1010_STORE_PARAM_FUNC&#160;</td><td class="fielddoc"><p>Store params in persistent mem. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggade8960f241ee3b728eac09288a694886adad8c0ea18f674f3eb61b43e8259395c"></a>OD_H1011_REST_PARAM_FUNC&#160;</td><td class="fielddoc"><p>Restore default parameters. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggade8960f241ee3b728eac09288a694886a5781f519d9ec08fd4389c4761754a4e6"></a>OD_H1012_COBID_TIME&#160;</td><td class="fielddoc"><p>Timestamp message cob-id. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggade8960f241ee3b728eac09288a694886a7aa32b2b6df7c4d4354599ef2fd2ca29"></a>OD_H1013_HIGH_RES_TIMESTAMP&#160;</td><td class="fielddoc"><p>High resolution timestamp. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggade8960f241ee3b728eac09288a694886a5cae036f3dd0bc1861dcea7c9a83c6d5"></a>OD_H1014_COBID_EMERGENCY&#160;</td><td class="fielddoc"><p>Emergency message cob-id. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggade8960f241ee3b728eac09288a694886adbcd0d36ab781fc60b05a94288b8f019"></a>OD_H1015_INHIBIT_TIME_EMCY&#160;</td><td class="fielddoc"><p>Inhibit time emergency message. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggade8960f241ee3b728eac09288a694886a996952cb963ce6e2783a6fa915d85612"></a>OD_H1016_CONSUMER_HB_TIME&#160;</td><td class="fielddoc"><p>Consumer heartbeat time. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggade8960f241ee3b728eac09288a694886ab2f428825c1127b286f5b8ace5e881b2"></a>OD_H1017_PRODUCER_HB_TIME&#160;</td><td class="fielddoc"><p>Producer heartbeat time. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggade8960f241ee3b728eac09288a694886aabb7a688852e453c5535f663be6298d2"></a>OD_H1018_IDENTITY_OBJECT&#160;</td><td class="fielddoc"><p>Identity object. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggade8960f241ee3b728eac09288a694886aa966d2e020222331b18c5b08261acbf0"></a>OD_H1019_SYNC_CNT_OVERFLOW&#160;</td><td class="fielddoc"><p>Sync counter overflow value. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggade8960f241ee3b728eac09288a694886a8c740bbdd0cb98200d402ec6272d7e8b"></a>OD_H1020_VERIFY_CONFIG&#160;</td><td class="fielddoc"><p>Verify configuration. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggade8960f241ee3b728eac09288a694886a259737f7e9ef239d85cb9e7bdeda550b"></a>OD_H1021_STORE_EDS&#160;</td><td class="fielddoc"><p>Store EDS. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggade8960f241ee3b728eac09288a694886a4061d54d1c1583fd178566a3915bcefe"></a>OD_H1022_STORE_FORMAT&#160;</td><td class="fielddoc"><p>Store format. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggade8960f241ee3b728eac09288a694886a12ba9d8cdfc20b9ff66167a8d1e5b21c"></a>OD_H1023_OS_CMD&#160;</td><td class="fielddoc"><p>OS command. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggade8960f241ee3b728eac09288a694886ad7e64256615fcda5b531063eeaa346de"></a>OD_H1024_OS_CMD_MODE&#160;</td><td class="fielddoc"><p>OS command mode. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggade8960f241ee3b728eac09288a694886aaf890d86468408b0dbe8353a3b270156"></a>OD_H1025_OS_DBG_INTERFACE&#160;</td><td class="fielddoc"><p>OS debug interface. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggade8960f241ee3b728eac09288a694886a6e3b80d148d22f129ed388fad9aaf398"></a>OD_H1026_OS_PROMPT&#160;</td><td class="fielddoc"><p>OS prompt. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggade8960f241ee3b728eac09288a694886a668cdf3b0102b753858b9bfeb7efdc1c"></a>OD_H1027_MODULE_LIST&#160;</td><td class="fielddoc"><p>Module list. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggade8960f241ee3b728eac09288a694886a6f093f4fdeaac7b723305fd8d2ce40c1"></a>OD_H1028_EMCY_CONSUMER&#160;</td><td class="fielddoc"><p>Emergency consumer object. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggade8960f241ee3b728eac09288a694886a67d50722cc629ee8c2a90a123ee41fa3"></a>OD_H1029_ERR_BEHAVIOR&#160;</td><td class="fielddoc"><p>Error behaviour. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggade8960f241ee3b728eac09288a694886a7e351a37cb53541b510e97711e167450"></a>OD_H1200_SDO_SERVER_1_PARAM&#160;</td><td class="fielddoc"><p>SDO server parameter. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggade8960f241ee3b728eac09288a694886a3e0e0989da485b0511d7e7cadcdb6dbb"></a>OD_H1280_SDO_CLIENT_1_PARAM&#160;</td><td class="fielddoc"><p>SDO client parameter. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggade8960f241ee3b728eac09288a694886afa584e69f73b7a80cd708010fc0ae64f"></a>OD_H1300_GFC_PARAM&#160;</td><td class="fielddoc"><p>Global fail-safe command param. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggade8960f241ee3b728eac09288a694886afbb7d48d240c7584d461712685e62945"></a>OD_H1301_SRDO_1_PARAM&#160;</td><td class="fielddoc"><p>SRDO communication parameter. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggade8960f241ee3b728eac09288a694886a8effa6834289b482e5ac3319ccf2c17b"></a>OD_H1381_SRDO_1_MAPPING&#160;</td><td class="fielddoc"><p>SRDO mapping parameter. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggade8960f241ee3b728eac09288a694886aa66d7204dd265d19276113ef7177ce68"></a>OD_H13FE_SRDO_VALID&#160;</td><td class="fielddoc"><p>SRDO Configuration valid. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggade8960f241ee3b728eac09288a694886a92c6bed78bc6bbbd182c16fe8890dcbf"></a>OD_H13FF_SRDO_CHECKSUM&#160;</td><td class="fielddoc"><p>SRDO configuration checksum. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggade8960f241ee3b728eac09288a694886ae64bf5b7166b6adf46b8e965d43150a0"></a>OD_H1400_RXPDO_1_PARAM&#160;</td><td class="fielddoc"><p>RXPDO communication parameter. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggade8960f241ee3b728eac09288a694886a7ed53d283e4719920b233b9094b18f9c"></a>OD_H1600_RXPDO_1_MAPPING&#160;</td><td class="fielddoc"><p>RXPDO mapping parameters. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggade8960f241ee3b728eac09288a694886aac35e48e4b717eef309ebb57876d30f1"></a>OD_H1800_TXPDO_1_PARAM&#160;</td><td class="fielddoc"><p>TXPDO communication parameter. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggade8960f241ee3b728eac09288a694886a2a2f1c4cc58d29ccf43e105afd57bc14"></a>OD_H1A00_TXPDO_1_MAPPING&#160;</td><td class="fielddoc"><p>TXPDO mapping parameters. </p>
</td></tr>
</table>

</div>
</div>
<a id="ga47b0d204aaf1ea64b4f826aaf8f5c151"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga47b0d204aaf1ea64b4f826aaf8f5c151">&#9670;&nbsp;</a></span>OD_attributes_t</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__CO__ODinterface.html#ga47b0d204aaf1ea64b4f826aaf8f5c151">OD_attributes_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Attributes (bit masks) for OD sub-object. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga47b0d204aaf1ea64b4f826aaf8f5c151ada3eb985961ffdd9cf655d1a7a7d9485"></a>ODA_SDO_R&#160;</td><td class="fielddoc"><p>SDO server may read from the variable. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga47b0d204aaf1ea64b4f826aaf8f5c151a9245e7a557f32ab863aef41412df9eb5"></a>ODA_SDO_W&#160;</td><td class="fielddoc"><p>SDO server may write to the variable. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga47b0d204aaf1ea64b4f826aaf8f5c151a2c60ba85cbe4f25d5511ffab3dcd7486"></a>ODA_SDO_RW&#160;</td><td class="fielddoc"><p>SDO server may read from or write to the variable. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga47b0d204aaf1ea64b4f826aaf8f5c151ad106aacb6b181ab7dac0f6dbc8c50321"></a>ODA_TPDO&#160;</td><td class="fielddoc"><p>Variable is mappable into TPDO (can be read) </p>
</td></tr>
<tr><td class="fieldname"><a id="gga47b0d204aaf1ea64b4f826aaf8f5c151ae4930aa0efbc2249563613b5107bb107"></a>ODA_RPDO&#160;</td><td class="fielddoc"><p>Variable is mappable into RPDO (can be written) </p>
</td></tr>
<tr><td class="fieldname"><a id="gga47b0d204aaf1ea64b4f826aaf8f5c151af750832681daa8d5e44ed8908c4ec552"></a>ODA_TRPDO&#160;</td><td class="fielddoc"><p>Variable is mappable into TPDO or RPDO. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga47b0d204aaf1ea64b4f826aaf8f5c151a3a1b8c2ed54565e89d6e6d3a043bdcfe"></a>ODA_TSRDO&#160;</td><td class="fielddoc"><p>Variable is mappable into transmitting SRDO. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga47b0d204aaf1ea64b4f826aaf8f5c151a6c6261d5bea91588b2851f5c11faae02"></a>ODA_RSRDO&#160;</td><td class="fielddoc"><p>Variable is mappable into receiving SRDO. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga47b0d204aaf1ea64b4f826aaf8f5c151af887f38d83f35c28d478f1a4b08d1be9"></a>ODA_TRSRDO&#160;</td><td class="fielddoc"><p>Variable is mappable into tx or rx SRDO. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga47b0d204aaf1ea64b4f826aaf8f5c151ae02b665e7e8d8bd84f341c9ad040d367"></a>ODA_MB&#160;</td><td class="fielddoc"><p>Variable is multi-byte ((u)int16_t to (u)int64_t) </p>
</td></tr>
<tr><td class="fieldname"><a id="gga47b0d204aaf1ea64b4f826aaf8f5c151a9527d9c21ba4159d653771e1dedad81d"></a>ODA_STR&#160;</td><td class="fielddoc"><p>Shorter value, than specified variable size, may be written to the variable. </p>
<p>SDO write will fill remaining memory with zeroes. Attribute is used for VISIBLE_STRING and UNICODE_STRING. </p>
</td></tr>
</table>

</div>
</div>
<a id="ga0e9afd8ad27de0920d1fe0738834869c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga0e9afd8ad27de0920d1fe0738834869c">&#9670;&nbsp;</a></span>ODR_t</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__CO__ODinterface.html#ga0e9afd8ad27de0920d1fe0738834869c">ODR_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Return codes from OD access functions. </p>
<p><a class="el" href="group__CO__ODinterface.html#ga7c24b06bb9365d41b8e60acb4eaecc6c">OD_getSDOabCode()</a> can be used to retrieve corresponding SDO abort code. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga0e9afd8ad27de0920d1fe0738834869caf7595749473065bfc81cfa6709370fee"></a>ODR_PARTIAL&#160;</td><td class="fielddoc"><p>Read/write is only partial, make more calls. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga0e9afd8ad27de0920d1fe0738834869ca15f7f20e27f1c5f174bdeecfeef45cc2"></a>ODR_OK&#160;</td><td class="fielddoc"><p>SDO abort 0x00000000 - Read/write successfully finished. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga0e9afd8ad27de0920d1fe0738834869ca118a63a81ef2fd802c925bf4c79975fa"></a>ODR_OUT_OF_MEM&#160;</td><td class="fielddoc"><p>SDO abort 0x05040005 - Out of memory. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga0e9afd8ad27de0920d1fe0738834869ca17d694adc9471112cbb2740f7f45a2d0"></a>ODR_UNSUPP_ACCESS&#160;</td><td class="fielddoc"><p>SDO abort 0x06010000 - Unsupported access to an object. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga0e9afd8ad27de0920d1fe0738834869ca44ab94bfc7547122b96498c781291df6"></a>ODR_WRITEONLY&#160;</td><td class="fielddoc"><p>SDO abort 0x06010001 - Attempt to read a write only object. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga0e9afd8ad27de0920d1fe0738834869caa119384effe499c9bffb874219c6433a"></a>ODR_READONLY&#160;</td><td class="fielddoc"><p>SDO abort 0x06010002 - Attempt to write a read only object. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga0e9afd8ad27de0920d1fe0738834869ca64ea80d1baebf136382d53d5580fbc85"></a>ODR_IDX_NOT_EXIST&#160;</td><td class="fielddoc"><p>SDO abort 0x06020000 - Object does not exist in the object dict. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga0e9afd8ad27de0920d1fe0738834869ca853242f74446c58773099bdef9835a94"></a>ODR_NO_MAP&#160;</td><td class="fielddoc"><p>SDO abort 0x06040041 - Object cannot be mapped to the PDO. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga0e9afd8ad27de0920d1fe0738834869cad6c92203fa86ee8ff7d7271bf81e7d9e"></a>ODR_MAP_LEN&#160;</td><td class="fielddoc"><p>SDO abort 0x06040042 - PDO length exceeded. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga0e9afd8ad27de0920d1fe0738834869ca36edb0ad1c8c5c0d804bb88274bfe165"></a>ODR_PAR_INCOMPAT&#160;</td><td class="fielddoc"><p>SDO abort 0x06040043 - General parameter incompatibility reasons. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga0e9afd8ad27de0920d1fe0738834869ca3d259ef030c2a10afecb253b532a0323"></a>ODR_DEV_INCOMPAT&#160;</td><td class="fielddoc"><p>SDO abort 0x06040047 - General internal incompatibility in device. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga0e9afd8ad27de0920d1fe0738834869caeaac26c680e626185429468dda9c2433"></a>ODR_HW&#160;</td><td class="fielddoc"><p>SDO abort 0x06060000 - Access failed due to hardware error. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga0e9afd8ad27de0920d1fe0738834869cad197c1462f472a21be2e3ed5c5880aa4"></a>ODR_TYPE_MISMATCH&#160;</td><td class="fielddoc"><p>SDO abort 0x06070010 - Data type does not match. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga0e9afd8ad27de0920d1fe0738834869ca3f93f54b7f130bb7b266b2d36c24caec"></a>ODR_DATA_LONG&#160;</td><td class="fielddoc"><p>SDO abort 0x06070012 - Data type does not match, length too high. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga0e9afd8ad27de0920d1fe0738834869cae0b103160b23ff40047fcf85225121d2"></a>ODR_DATA_SHORT&#160;</td><td class="fielddoc"><p>SDO abort 0x06070013 - Data type does not match, length too short. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga0e9afd8ad27de0920d1fe0738834869ca4f76fa87ea446616ff2f6195e7bec67c"></a>ODR_SUB_NOT_EXIST&#160;</td><td class="fielddoc"><p>SDO abort 0x06090011 - Sub index does not exist. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga0e9afd8ad27de0920d1fe0738834869ca0646f592124a9b4d2835c9c0296c6a0c"></a>ODR_INVALID_VALUE&#160;</td><td class="fielddoc"><p>SDO abort 0x06090030 - Invalid value for parameter (download only) </p>
</td></tr>
<tr><td class="fieldname"><a id="gga0e9afd8ad27de0920d1fe0738834869ca95291309267a732c380e13ad6c17a986"></a>ODR_VALUE_HIGH&#160;</td><td class="fielddoc"><p>SDO abort 0x06090031 - Value range of parameter written too high. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga0e9afd8ad27de0920d1fe0738834869ca4db02b8575a8a10786959a5472f1c0f4"></a>ODR_VALUE_LOW&#160;</td><td class="fielddoc"><p>SDO abort 0x06090032 - Value range of parameter written too low. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga0e9afd8ad27de0920d1fe0738834869cac9c8eda20bfc7dfffe17f170c377d646"></a>ODR_MAX_LESS_MIN&#160;</td><td class="fielddoc"><p>SDO abort 0x06090036 - Maximum value is less than minimum value. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga0e9afd8ad27de0920d1fe0738834869ca15fe8d8b791b90373e59bc5bc5d3f8c8"></a>ODR_NO_RESOURCE&#160;</td><td class="fielddoc"><p>SDO abort 0x060A0023 - Resource not available: SDO connection. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga0e9afd8ad27de0920d1fe0738834869ca968d2a28cb866cacf7ef8b8cd0b76e2c"></a>ODR_GENERAL&#160;</td><td class="fielddoc"><p>SDO abort 0x08000000 - General error. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga0e9afd8ad27de0920d1fe0738834869ca341104b9ac43168d0c668586b8f750bb"></a>ODR_DATA_TRANSF&#160;</td><td class="fielddoc"><p>SDO abort 0x08000020 - Data cannot be transferred or stored to app. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga0e9afd8ad27de0920d1fe0738834869ca28b28d8f091eefb7e8fac92bbdae82bb"></a>ODR_DATA_LOC_CTRL&#160;</td><td class="fielddoc"><p>SDO abort 0x08000021 - Data can't be transferred (local control) </p>
</td></tr>
<tr><td class="fieldname"><a id="gga0e9afd8ad27de0920d1fe0738834869ca16bfe0c712aaea3841ae2b250331b276"></a>ODR_DATA_DEV_STATE&#160;</td><td class="fielddoc"><p>SDO abort 0x08000022 - Data can't be transf. </p>
<p>(present device state) </p>
</td></tr>
<tr><td class="fieldname"><a id="gga0e9afd8ad27de0920d1fe0738834869caeae1e00129ff22708ffdcb2c8b3f083b"></a>ODR_OD_MISSING&#160;</td><td class="fielddoc"><p>SDO abort 0x08000023 - Object dictionary not present. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga0e9afd8ad27de0920d1fe0738834869caff503d4f6cc55429913680d071ca3c4d"></a>ODR_NO_DATA&#160;</td><td class="fielddoc"><p>SDO abort 0x08000024 - No data available. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga0e9afd8ad27de0920d1fe0738834869cac43414be729ea2b701380c4400658c37"></a>ODR_COUNT&#160;</td><td class="fielddoc"><p>Last element, number of responses. </p>
</td></tr>
</table>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="gadf9ac60f94e1f9fc21b7f10a0d254503"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gadf9ac60f94e1f9fc21b7f10a0d254503">&#9670;&nbsp;</a></span>OD_readOriginal()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__CO__ODinterface.html#gaef984c993ddbf6a0500391e97f05d08e">OD_size_t</a> OD_readOriginal </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structOD__stream__t.html">OD_stream_t</a> *&#160;</td>
          <td class="paramname"><em>stream</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__CO__dataTypes.html#gaba7bc1797add20fe3efdf37ced1182c5">uint8_t</a>&#160;</td>
          <td class="paramname"><em>subIndex</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__CO__ODinterface.html#gaef984c993ddbf6a0500391e97f05d08e">OD_size_t</a>&#160;</td>
          <td class="paramname"><em>count</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__CO__ODinterface.html#ga0e9afd8ad27de0920d1fe0738834869c">ODR_t</a> *&#160;</td>
          <td class="paramname"><em>returnCode</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Read value from original OD location. </p>
<p>This function can be used inside read / write functions, specified by <a class="el" href="group__CO__ODinterface.html#gac07bbe54fbfecc6bc8da2e10b2c0f7e8">OD_extensionIO_init()</a>. It reads data directly from memory location specified by Object dictionary. If no IO extension is used on OD entry, then io-&gt;read returned by <a class="el" href="group__CO__ODinterface.html#gaf1f736d4b4d6754d971f0c0a63655bcf">OD_getSub()</a> equals to this function. See also <a class="el" href="structOD__IO__t.html">OD_IO_t</a>. </p>

</div>
</div>
<a id="ga648f0b0bfabde2d377149bf84e937422"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga648f0b0bfabde2d377149bf84e937422">&#9670;&nbsp;</a></span>OD_writeOriginal()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__CO__ODinterface.html#gaef984c993ddbf6a0500391e97f05d08e">OD_size_t</a> OD_writeOriginal </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structOD__stream__t.html">OD_stream_t</a> *&#160;</td>
          <td class="paramname"><em>stream</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__CO__dataTypes.html#gaba7bc1797add20fe3efdf37ced1182c5">uint8_t</a>&#160;</td>
          <td class="paramname"><em>subIndex</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const void *&#160;</td>
          <td class="paramname"><em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__CO__ODinterface.html#gaef984c993ddbf6a0500391e97f05d08e">OD_size_t</a>&#160;</td>
          <td class="paramname"><em>count</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__CO__ODinterface.html#ga0e9afd8ad27de0920d1fe0738834869c">ODR_t</a> *&#160;</td>
          <td class="paramname"><em>returnCode</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Write value to original OD location. </p>
<p>This function can be used inside read / write functions, specified by <a class="el" href="group__CO__ODinterface.html#gac07bbe54fbfecc6bc8da2e10b2c0f7e8">OD_extensionIO_init()</a>. It writes data directly to memory location specified by Object dictionary. If no IO extension is used on OD entry, then io-&gt;write returned by <a class="el" href="group__CO__ODinterface.html#gaf1f736d4b4d6754d971f0c0a63655bcf">OD_getSub()</a> equals to this function. See also <a class="el" href="structOD__IO__t.html">OD_IO_t</a>. </p>

</div>
</div>
<a id="gaaacaadfc28bfaf485cefc8bff64310f4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaaacaadfc28bfaf485cefc8bff64310f4">&#9670;&nbsp;</a></span>OD_find()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="structOD__entry__t.html">OD_entry_t</a>* OD_find </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structOD__t.html">OD_t</a> *&#160;</td>
          <td class="paramname"><em>od</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__CO__dataTypes.html#ga1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a>&#160;</td>
          <td class="paramname"><em>index</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Find OD entry in Object Dictionary. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">od</td><td>Object Dictionary </td></tr>
    <tr><td class="paramname">index</td><td>CANopen Object Dictionary index of object in Object Dictionary</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Pointer to OD entry or NULL if not found </dd></dl>

</div>
</div>
<a id="gaf1f736d4b4d6754d971f0c0a63655bcf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf1f736d4b4d6754d971f0c0a63655bcf">&#9670;&nbsp;</a></span>OD_getSub()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__CO__ODinterface.html#ga0e9afd8ad27de0920d1fe0738834869c">ODR_t</a> OD_getSub </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structOD__entry__t.html">OD_entry_t</a> *&#160;</td>
          <td class="paramname"><em>entry</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__CO__dataTypes.html#gaba7bc1797add20fe3efdf37ced1182c5">uint8_t</a>&#160;</td>
          <td class="paramname"><em>subIndex</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structOD__subEntry__t.html">OD_subEntry_t</a> *&#160;</td>
          <td class="paramname"><em>subEntry</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structOD__IO__t.html">OD_IO_t</a> *&#160;</td>
          <td class="paramname"><em>io</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__CO__dataTypes.html#ga449976458a084f880dc8e3d29e7eb6f5">bool_t</a>&#160;</td>
          <td class="paramname"><em>odOrig</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Find sub-object with specified sub-index on OD entry returned by OD_find. </p>
<p>Function populates subEntry and io structures with sub-object data.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir"></td><td class="paramname">entry</td><td>OD entry returned by <a class="el" href="group__CO__ODinterface.html#gaaacaadfc28bfaf485cefc8bff64310f4">OD_find()</a>. </td></tr>
    <tr><td class="paramdir"></td><td class="paramname">subIndex</td><td>Sub-index of the variable from the OD object. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">subEntry</td><td>Structure will be populated on success, may be NULL. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">io</td><td>Structure will be populated on success. </td></tr>
    <tr><td class="paramdir"></td><td class="paramname">odOrig</td><td>If true, then potential IO extension on entry will be ignored and access to data entry in the original OD location will be returned</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Value from <a class="el" href="group__CO__ODinterface.html#ga0e9afd8ad27de0920d1fe0738834869c">ODR_t</a>, "ODR_OK" in case of success. </dd></dl>

</div>
</div>
<a id="gac84e7390f50e7e5c5e8ba42714e51aaf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac84e7390f50e7e5c5e8ba42714e51aaf">&#9670;&nbsp;</a></span>OD_getIndex()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="group__CO__dataTypes.html#ga1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a> OD_getIndex </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structOD__entry__t.html">OD_entry_t</a> *&#160;</td>
          <td class="paramname"><em>entry</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Return index from OD entry. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">entry</td><td>OD entry returned by <a class="el" href="group__CO__ODinterface.html#gaaacaadfc28bfaf485cefc8bff64310f4">OD_find()</a>.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>OD index </dd></dl>

</div>
</div>
<a id="ga3715e0a6b15bdf45659e1e01f9fc4e65"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3715e0a6b15bdf45659e1e01f9fc4e65">&#9670;&nbsp;</a></span>OD_rwRestart()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void OD_rwRestart </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structOD__stream__t.html">OD_stream_t</a> *&#160;</td>
          <td class="paramname"><em>stream</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Restart read or write operation on OD variable. </p>
<p>It is not necessary to call this function, if stream was initialised by <a class="el" href="group__CO__ODinterface.html#gaf1f736d4b4d6754d971f0c0a63655bcf">OD_getSub()</a>. It is also not necessary to call this function, if prevous read or write was successfully finished.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">stream</td><td>Object Dictionary stream object. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ga7c24b06bb9365d41b8e60acb4eaecc6c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7c24b06bb9365d41b8e60acb4eaecc6c">&#9670;&nbsp;</a></span>OD_getSDOabCode()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__CO__dataTypes.html#ga33594304e786b158f3fb30289278f5af">uint32_t</a> OD_getSDOabCode </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__CO__ODinterface.html#ga0e9afd8ad27de0920d1fe0738834869c">ODR_t</a>&#160;</td>
          <td class="paramname"><em>returnCode</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get SDO abort code from returnCode. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">returnCode</td><td>Returned from some OD access functions</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Corresponding <a class="el" href="group__CO__SDOserver.html#ga7587ddcf798747fe6d97d03bf1bf2979">CO_SDO_abortCode_t</a> </dd></dl>

</div>
</div>
<a id="gac07bbe54fbfecc6bc8da2e10b2c0f7e8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac07bbe54fbfecc6bc8da2e10b2c0f7e8">&#9670;&nbsp;</a></span>OD_extensionIO_init()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__CO__ODinterface.html#ga0e9afd8ad27de0920d1fe0738834869c">ODR_t</a> OD_extensionIO_init </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structOD__entry__t.html">OD_entry_t</a> *&#160;</td>
          <td class="paramname"><em>entry</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>object</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__CO__ODinterface.html#gaef984c993ddbf6a0500391e97f05d08e">OD_size_t</a>(*)(<a class="el" href="structOD__stream__t.html">OD_stream_t</a> *stream, <a class="el" href="group__CO__dataTypes.html#gaba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> subIndex, void *buf, <a class="el" href="group__CO__ODinterface.html#gaef984c993ddbf6a0500391e97f05d08e">OD_size_t</a> count, <a class="el" href="group__CO__ODinterface.html#ga0e9afd8ad27de0920d1fe0738834869c">ODR_t</a> *returnCode)&#160;</td>
          <td class="paramname"><em>read</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__CO__ODinterface.html#gaef984c993ddbf6a0500391e97f05d08e">OD_size_t</a>(*)(<a class="el" href="structOD__stream__t.html">OD_stream_t</a> *stream, <a class="el" href="group__CO__dataTypes.html#gaba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> subIndex, const void *buf, <a class="el" href="group__CO__ODinterface.html#gaef984c993ddbf6a0500391e97f05d08e">OD_size_t</a> count, <a class="el" href="group__CO__ODinterface.html#ga0e9afd8ad27de0920d1fe0738834869c">ODR_t</a> *returnCode)&#160;</td>
          <td class="paramname"><em>write</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Initialise extended OD object with own read/write functions. </p>
<p>This function works on OD object, which has IO extension enabled. It gives application very powerful tool: definition of own IO access on own OD object. Structure and attributes are the same as defined in original OD object, but data are read directly from (or written directly to) application specified object via custom function calls.</p>
<p>If this function is not called yet, then normal access ("odOrig" argument is false) to OD entry is disabled.</p>
<dl class="section warning"><dt>Warning</dt><dd>Object dictionary storage works only directly on OD variables. It does not access read function specified here. So, if extended OD objects needs to be preserved, then <a class="el" href="group__CO__ODinterface.html#ga648f0b0bfabde2d377149bf84e937422">OD_writeOriginal</a> can be used inside custom write function.</dd>
<dd>
Read and write functions may be called from different threads, so critical sections in custom functions must be protected with <a class="el" href="group__CO__critical__sections.html#ga3850830931ced2bd3d7e15821572bbcc">CO_LOCK_OD()</a> and <a class="el" href="group__CO__critical__sections.html#ga2477f5d24fd31a9f4052cf451b87809f">CO_UNLOCK_OD()</a>.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">entry</td><td>OD entry returned by <a class="el" href="group__CO__ODinterface.html#gaaacaadfc28bfaf485cefc8bff64310f4">OD_find()</a>. </td></tr>
    <tr><td class="paramname">object</td><td>Object, which will be passed to read or write function. </td></tr>
    <tr><td class="paramname">read</td><td>Read function pointer. If NULL, then read will be disabled. <a class="el" href="group__CO__ODinterface.html#gadf9ac60f94e1f9fc21b7f10a0d254503">OD_readOriginal</a> can be used here to keep original read function. For function description see <a class="el" href="structOD__IO__t.html">OD_IO_t</a>. </td></tr>
    <tr><td class="paramname">write</td><td>Write function pointer. If NULL, then write will be disabled. <a class="el" href="group__CO__ODinterface.html#ga648f0b0bfabde2d377149bf84e937422">OD_writeOriginal</a> can be used here to keep original write function. For function description see <a class="el" href="structOD__IO__t.html">OD_IO_t</a>.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>"ODR_OK" on success, "ODR_IDX_NOT_EXIST" if OD object doesn't exist, "ODR_PAR_INCOMPAT" if OD object is not extended. </dd></dl>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="footer">Generated on Thu Dec 24 2020 14:30:50 for CANopenNode by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
  </ul>
</div>
</body>
</html>
